R

[R语言] 在R里面做最优化

这是一篇关于R语言进行最优化的学习笔记

Posted by Leung ZhengHua on 2017-12-12

本文总点击量

收集了几个包,有空可以逐一试试每个包的求解速度。

R语言非线性方程组求解dfsane,nleqslv
R语言与优化模型(二):非线性规划与多目标规划


今天拿Rglpk来练手.这个包有只有两个函数,一个函数负责读入整理好的的目标数据,系数矩阵,约束符号等数据;实际上求解的的就是一个函数Rglpk_solve_LP.

拿lpSolve和Rglpk做测试,求解的问题再代码里面可以看见。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
library(lpSolve)
library(Rglpk)
#------------
## Simple linear program.
## maximize: 2 x_1 + 4 x_2 + 3 x_3
## subject to: 3 x_1 + 4 x_2 + 2 x_3 <= 60
## 2 x_1 + x_2 + 2 x_3 <= 40
## x_1 + 3 x_2 + 2 x_3 <= 80
## x_1, x_2, x_3 are non-negative real numbers
#------------
obj <- c(2, 4, 3)
mat <- matrix(c(3, 2, 1, 4, 1, 3, 2, 2, 2), nrow = 3)
dir <- c("<=", "<=", "<=")
rhs <- c(60, 40, 80)
max <- TRUE
system.time({
for(i in 1:10000) model1=Rglpk_solve_LP(obj, mat, dir, rhs, max = max)
})
system.time({
for(i in 1:10000) model2=lp ("max", obj, mat, dir, rhs)
})